package bd;

import java.sql.SQLException;
import java.util.ArrayList;

public interface JDBC {	
	
	public void insert(Object o) throws SQLException, ClassNotFoundException;
	public void delete(Object o) throws SQLException;
	
	/**
	 * Retornara un arrayList con todos los objetos de la base de datos
	 * @return ArrayList con todos los objetos de la base de datos
	 * @throws SQLException
	 */
	public ArrayList<?> selectAll() throws SQLException;
	
	/**
	 * Retornara un unico objeto con la clave primaria igual a la indicada como parametro
	 * el parametro recibido devera ser del mismo tipo que la clave primaria de la tabla
	 * en la que se almacenan los objetos del tipo indicado.
	 * 
	 * @param o Clave primaria del objeto que se quiere estraer de la BBDD
	 * @return Un unico objeto con la clave primari igual a el parametro recibido. Si no hay fila con la clave primaria indicada
	 * se retornara null.
	 * @throws SQLException
	 * @throws IllegalArgumentException si el argumento recibido no es del mismo tipo que la clave primaria.
	 */
	public Object selectOne(Object o) throws SQLException, IllegalArgumentException;

	public void update(Object o) throws SQLException, ClassNotFoundException;
	public void close() throws SQLException;
	
		
	
}
